package com.ruoyi.system.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.InterviewMapper;
import com.ruoyi.system.domain.Interview;
import com.ruoyi.system.service.IInterviewService;

/**
 * 面试记录Service业务层处理
 * 
 * @author ruoyi
 * @date 2023-11-14
 */
@Service
public class InterviewServiceImpl implements IInterviewService 
{
    @Autowired
    private InterviewMapper interviewMapper;

    /**
     * 查询面试记录
     * 
     * @param id 面试记录主键
     * @return 面试记录
     */
    @Override
    public Interview selectInterviewById(Long id)
    {

        return interviewMapper.selectInterviewById(id);
    }

    /**
     * 查询面试记录列表
     * 
     * @param interview 面试记录
     * @return 面试记录
     */
    @Override
    public List<Interview> selectInterviewList(Interview interview)
    {

        if(interview == null){
            interview = new Interview();
        }
        //判断是否是游客
        if(SecurityUtils.hasRole("travel") && !SecurityUtils.hasRole("admin")){
            interview.setUserId(SecurityUtils.getUserId());
            return interviewMapper.selectInterviewList(interview);
        }


        return interviewMapper.selectInterviewList(interview);
    }

    /**
     * 新增面试记录
     * 
     * @param interview 面试记录
     * @return 结果
     */
    @Override
    public int insertInterview(Interview interview)
    {
        interview.setCreateTime(DateUtils.getNowDate());
        //设定初始状态
        interview.setProgress("0");
        return interviewMapper.insertInterview(interview);
    }

    /**
     * 修改面试记录
     * 
     * @param interview 面试记录
     * @return 结果
     */
    @Override
    public int updateInterview(Interview interview)
    {
        interview.setUpdateTime(DateUtils.getNowDate());
        return interviewMapper.updateInterview(interview);
    }

    /**
     * 批量删除面试记录
     * 
     * @param ids 需要删除的面试记录主键
     * @return 结果
     */
    @Override
    public int deleteInterviewByIds(Long[] ids)
    {
        return interviewMapper.deleteInterviewByIds(ids);
    }

    /**
     * 删除面试记录信息
     * 
     * @param id 面试记录主键
     * @return 结果
     */
    @Override
    public int deleteInterviewById(Long id)
    {
        return interviewMapper.deleteInterviewById(id);
    }
}
